#if 0
#ifndef _I386_BUDDY_MEM_H
#define _I386_BUDDY_MEM_H
 
#include <xbook/list.h>
#include <stdint.h>

#define MEM_NUM 11  //不同种类内存块总数目
#define BLOCK_BASE_SIZE 4096  //以4KB为单位分配
 
#define cloth2cover(num) ((num & num-1) == 0)? 1:0  //判断是否是2^n

//内存链表数据结构
struct free_area_head
{
    u32 size;  //链表内存大小
    u32 num;  //相应内存块数目
    struct list_head list;
};
 
//内存块数据结构
struct free_chunk
{
    u32 size;   //单位是KB
    u32 addr;  //内存地址
    int dir;    //标识这块内存块是否被占用，1被占用，0空闲
    struct list_head list;
};
 
//函数声明
int mem_init();
int mem_alloc(int size);
inline int mem_avail(int size);
int mem_free(int size);

#endif /* _I386_BUDDY_MEM_H */
#endif